package com.streamsets.datacollector.model.pipeline;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.streamsets.datacollector.model.etl.*;
import com.streamsets.datacollector.model.jdbc.DestinationJdbcConfigJson;
import com.streamsets.datacollector.model.jdbc.SourceJdbcConfigJson;

import java.io.Serializable;

/**
 *  添加采集管道实体Bean
 * @author wengzhonghui
 * @date 2019/6/18 19:42
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class AddPipelineJson implements Serializable {

    String title;

    SourceJdbcConfigJson sourceJdbcConfig;

    DestinationJdbcConfigJson destinationJdbcConfig;
    // 值替换
    FieldValueReplacerConfigJson fieldValueReplacerConfig;
    // 字段映射
    RenameMappingConfigJson renameMappingConfigJson;
    // 导出列映射配置
    ColumnMappingConfigJson columnMappingConfigJson;
    // 字段类型转换配置
    FieldTypeConversionJson fieldTypeConversionJson;
    // 某一列值全替换为某个值
    ColumnValueReplaceConfigJson columnValueReplaceConfigJson;
    //字段值屏蔽
    FieldValueMaskConfigJson fieldValueMaskConfigJson;
    //字段清除
    FieldRemoveConfigJson fieldRemoveConfigJson;
		//字段加密或者脱敏
		FieldValueHashConfigJson fieldValueHashConfigJson;

    public AddPipelineJson() {
    }

    public AddPipelineJson(
            @JsonProperty("title")String title,
            @JsonProperty("destinationJdbcConfig")DestinationJdbcConfigJson destinationJdbcConfig,
            @JsonProperty("sourceJdbcConfig")SourceJdbcConfigJson sourceJdbcConfig,
            @JsonProperty("fieldValueReplacerConfig")FieldValueReplacerConfigJson fieldValueReplacerConfig,
            @JsonProperty("renameMappingConfig")RenameMappingConfigJson renameMappingConfigJson,
            @JsonProperty("columnMappingConfig") ColumnMappingConfigJson columnMappingConfigJson,
            @JsonProperty("columnValueReplaceConfig") ColumnValueReplaceConfigJson columnValueReplaceConfigJson,
            @JsonProperty("fieldValueMaskConfig") FieldValueMaskConfigJson fieldValueMaskConfigJson,
            @JsonProperty("fieldRemoveConfig") FieldRemoveConfigJson fieldRemoveConfigJson,
						@JsonProperty("fieldValueHashConfig") FieldValueHashConfigJson fieldValueHashConfigJson,
            @JsonProperty("fieldTypeConversionConfig")FieldTypeConversionJson fieldTypeConversionJson) {
        this.title = title;
        this.destinationJdbcConfig = destinationJdbcConfig;
        this.sourceJdbcConfig = sourceJdbcConfig;
        this.fieldValueReplacerConfig = fieldValueReplacerConfig;
        this.renameMappingConfigJson = renameMappingConfigJson;
        this.columnMappingConfigJson = columnMappingConfigJson;
        this.columnValueReplaceConfigJson = columnValueReplaceConfigJson;
        this.fieldValueMaskConfigJson = fieldValueMaskConfigJson;
        this.fieldRemoveConfigJson = fieldRemoveConfigJson;
        this.fieldTypeConversionJson = fieldTypeConversionJson;
        this.fieldValueHashConfigJson = fieldValueHashConfigJson;
    }


    public DestinationJdbcConfigJson getDestinationJdbcConfig() {
        return destinationJdbcConfig;
    }

    public void setDestinationJdbcConfig(DestinationJdbcConfigJson destinationJdbcConfig) {
        this.destinationJdbcConfig = destinationJdbcConfig;
    }

    public SourceJdbcConfigJson getSourceJdbcConfig() {
        return sourceJdbcConfig;
    }

    public void setSourceJdbcConfig(SourceJdbcConfigJson sourceJdbcConfig) {
        this.sourceJdbcConfig = sourceJdbcConfig;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public FieldValueReplacerConfigJson getFieldValueReplacerConfig() {
        return fieldValueReplacerConfig;
    }

    public void setFieldValueReplacerConfig(FieldValueReplacerConfigJson fieldValueReplacerConfig) {
        this.fieldValueReplacerConfig = fieldValueReplacerConfig;
    }

    public RenameMappingConfigJson getRenameMappingConfigJson() {
        return renameMappingConfigJson;
    }

    public void setRenameMappingConfigJson(RenameMappingConfigJson renameMappingConfigJson) {
        this.renameMappingConfigJson = renameMappingConfigJson;
    }

    public ColumnMappingConfigJson getColumnMappingConfigJson() {
        return columnMappingConfigJson;
    }

    public void setColumnMappingConfigJson(ColumnMappingConfigJson columnMappingConfigJson) {
        this.columnMappingConfigJson = columnMappingConfigJson;
    }

    public FieldTypeConversionJson getFieldTypeConversionJson() {
        return fieldTypeConversionJson;
    }

    public void setFieldTypeConversionJson(FieldTypeConversionJson fieldTypeConversionJson) {
        this.fieldTypeConversionJson = fieldTypeConversionJson;
    }

    public ColumnValueReplaceConfigJson getColumnValueReplaceConfigJson() {
        return columnValueReplaceConfigJson;
    }

    public void setColumnValueReplaceConfigJson(ColumnValueReplaceConfigJson columnValueReplaceConfigJson) {
        this.columnValueReplaceConfigJson = columnValueReplaceConfigJson;
    }

    public FieldValueMaskConfigJson getFieldValueMaskConfigJson() {
        return fieldValueMaskConfigJson;
    }

    public void setFieldValueMaskConfigJson(FieldValueMaskConfigJson fieldValueMaskConfigJson) {
        this.fieldValueMaskConfigJson = fieldValueMaskConfigJson;
    }

    public FieldRemoveConfigJson getFieldRemoveConfigJson() {
        return fieldRemoveConfigJson;
    }

    public void setFieldRemoveConfigJson(FieldRemoveConfigJson fieldRemoveConfigJson) {
        this.fieldRemoveConfigJson = fieldRemoveConfigJson;
    }

		public FieldValueHashConfigJson getFieldValueHashConfigJson() {
			return fieldValueHashConfigJson;
		}

		public void setFieldValueHashConfigJson(FieldValueHashConfigJson fieldValueHashConfigJson) {
			this.fieldValueHashConfigJson = fieldValueHashConfigJson;
		}
}
